package JZ.JZ34;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author corn
 * @create 2020-07-14-20:04
 */

/**
 * 题目描述:    JZ34 第一次只出现一次的字符
 * 在一个字符串(0<=字符串长度<=10000，全部由字母组成)中找到第一个只出现一次的字符,
 * 并返回它的位置, 如果没有则返回 -1（需要区分大小写）.（从0开始计数）
 */
public class FirstCharJZ34 {
    public static void main(String[] args) {
        String s = "hellohell";
        Solution sol = new Solution();
        int i = sol.FirstNotRepeatingChar(s);
        System.out.println(i);
    }
}

class Solution {

    public int FirstNotRepeatingChar(String str) {
        LinkedHashMap<Character, Boolean> map = new LinkedHashMap<>();
        for (char a : str.toCharArray()) {
            if (!map.containsKey(a)) {
                map.put(a, true);
            } else {
                map.put(a, false);
            }
        }
        for (Map.Entry<Character, Boolean> entry : map.entrySet()) {
            if (entry.getValue() == true) {
                return str.indexOf(entry.getKey());
            }
        }
        return 0;
    }
}
